import os
from cy_query.core import signing


def create_signed_token(data):
    """
    创建签名 Token
    :param data: 要签名的数据（字典）
    :param max_age: Token 有效时间（秒）
    :return: 签名后的字符串
    """
    return signing.dumps(data, key=os.getenv('SECRET_KEY'), salt='myapp-auth', compress=True)


def verify_signed_token(token):
    """
    验证签名 Token
    :param token: 要验证的 Token
    :param max_age: Token 有效时间（秒）
    :return: 原始数据或 None（如果验证失败）
    """
    try:
        return signing.loads(token, key=os.getenv('SECRET_KEY'), salt='myapp-auth')
    except (signing.BadSignature, signing.SignatureExpired):
        raise

